package com.yupi.springbootinit.utils;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

public class PageUtils {
	/**
	 * 分页对象转换（支持 Lambda 表达式）
	 *
	 * @param source    原始分页对象
	 * @param converter 单个元素的转换函数
	 * @return 目标分页对象
	 */
	public static <T, R> Page<R> convert(Page<T> source, Function<T, R> converter) {
		Page<R> target = new Page<>();
		target.setTotal(source.getTotal());
		target.setPages(source.getPages());
		target.setSize(source.getSize());
		// 转换列表
		List<R> voList = source.getRecords().stream()
								 .map(converter)
								 .collect(Collectors.toList());
		target.setRecords(voList);
		return target;
	}
}
